home *** CD-ROM | disk | FTP | other *** search
/ Interactive Media Design Review 1999 / Interactive Media Design Review 1999.iso / pc / Demos / Herois / Codigo.Cst / 00040_Script_Textos Util < prev    next >
Text File  |  1999-03-19  |  14KB  |  447 lines

  1. -- Abre arquivo e tabelas com textos
  2. on abreTextosDB
  3.   global gTextosDB,  gSimples, gVerbetes, gLinks
  4.   
  5.   set gTextosDB =¼
  6.       new(Xtra "V12Dbe",the moviePath & "textos.v12","ReadWrite","no")
  7.   if NOT objectP(gTextosDB) then
  8.     Alert("Cannot open database: textos.v12")
  9.     exit
  10.   end if
  11.   
  12.   set gVerbetes = new(Xtra "V12table",mGetRef(gTextosDB),"verbetes")
  13.   set gLinks = new(Xtra "V12table",mGetRef(gTextosDB),"links")
  14.   set gSimples = new(Xtra "V12table", mGetRef(gTextosDB), "simples")
  15.   
  16. end
  17.  
  18. on fechaTextosDB
  19.   global gTextosDB, gSimples, gVerbetes, gLinks,
  20.   set gSimples = 0
  21.   set gVerbetes = 0
  22.   set gLinks = 0
  23.   set gTextosDB = 0
  24. end
  25.  
  26. -- Recria arquivo do V12 e importa textos
  27. on fazTextosDB
  28.   
  29.   v12TextosDB
  30.   
  31.   ImportaTextosDB
  32.   
  33.   importaLinks
  34. end
  35.  
  36. on v12TextosDB
  37.   -- Cria base de dados para textos
  38.   fechaTextosDB
  39.   set f = new(xtra "fileio")
  40.   openFile(f,the moviePath & "textos.v12", 2)
  41.   delete(f)
  42.   closeFile(f)
  43.   set f = 0
  44.   criaTextosDB
  45.   put "textos.v12 reinicializado"
  46. end
  47.  
  48. on ImportaTextosDB
  49.   abreTextosDB
  50.   global gSimplesIndice
  51.   set gSimplesIndice = 10000
  52.   
  53.   abreArqs
  54.   global garqTextos, garqLista, garqControle
  55.   put Integer(leAteFimDeLinha(garqLista)) into arqNum
  56.   
  57.   repeat while arqNum > 0
  58.     put "Arquivo sendo importado: " & arqNum 
  59.     if arqNum < 10000 then importaSimples(arqNum)
  60.     else importaVerbete(arqNum)
  61.     put Integer(leAteFimDeLinha(garqLista)) into arqNum
  62.   end repeat
  63.   
  64.   fechaTextosDB
  65.   fechaArqs
  66.   
  67.   importaLinks
  68.   
  69. end
  70.  
  71.  
  72.  
  73.  
  74. on LeArquivoTexto arq
  75.   set f = new(xtra "fileio")      -- Create an instance of FileIO
  76.   openFile(f, the moviePath & arq, 1)  -- Open the file
  77.   put readFile(f) into strText
  78.   closeFile(f)
  79.   return strText
  80. end
  81.  
  82. on leTexto arq, linhas
  83.   put 0 into counter
  84.   put "" into strTexto
  85.   repeat while counter < linhas
  86.     put readLine(arq) after strTexto
  87.     put 1+counter into counter
  88.   end repeat 
  89.   return strTexto
  90. end
  91.  
  92. on leEstilos arq, linhas
  93.   set texto = ""
  94.   put 0 into counter
  95.   repeat while counter < linhas
  96.     put leAteFimDeLinha(arq) into tipo
  97.     put Integer(leAteFimDeLinha(arq)) into palini
  98.     put Integer(leAteFimDeLinha(arq)) into palfim   
  99.     put tipo & ", " & palini & ", " & palfim & RETURN after texto
  100.     
  101.     put counter + 1 into counter
  102.   end repeat
  103.   
  104.   return texto
  105. end
  106.  
  107. on fazEstilos textoEstilos, membro
  108.   global gImportaSimples
  109.   put 1 into counter
  110.   --    if gImportaSimples then return
  111.   if textoEstilos = "" then return
  112.   set linhas = the number of lines in textoEstilos
  113.   set the fontStyle of member membro to "plain"
  114.   repeat while counter < the number of lines in textoEstilos
  115.     put item 1 of line counter of textoEstilos into tipo
  116.     put Integer(item 2 of line counter of textoEstilos) into palini
  117.     put Integer(item 3 of line counter of textoEstilos) into palfim
  118.     if tipo = "I" then
  119.       set the fontStyle of word palini to palfim¼
  120.       of member membro to "italic"
  121.     else
  122.       set the fontStyle of word palini to palfim¼
  123.       of member membro to "underline"
  124.     end if
  125.     put counter + 1 into counter
  126.   end repeat
  127. end
  128.  
  129. on criaTextosDB
  130.   -- Abre base de dados
  131.   Set ClassDbe = Xtra "V12Dbe"
  132.   set dbObj = new(ClassDbe,the moviePath & "textos.v12","Create","no")
  133.   if NOT objectP(dbObj) then
  134.     Alert("Cannot create database: textos.v12")
  135.     exit
  136.   end if
  137.   -- Cria tabelas
  138.   mCreateTable(dbObj,"simples" )
  139.   mCreateField(dbObj,"simples","arqNum","Integer")
  140.   mCreateField(dbObj,"simples","textoPC","media",32768)
  141.   mCreateField(dbObj,"simples", "stringMac", "String", 512)
  142.   mCreateField(dbObj,"simples", "estilos", "String", 8192)
  143.   mCreateIndex(dbObj,"simples","index","unique","arqNum","ascending")
  144.   
  145.   mCreateTable(dbObj,"verbetes" )
  146.   mCreateField(dbObj,"verbetes","arqNum","Integer")
  147.   mCreateField(dbObj,"verbetes","mediaNum","Integer")
  148.   mCreateField(dbObj,"verbetes","fotoCode", "String")
  149.   mCreateField(dbObj,"verbetes","texto0","Integer")
  150.   mCreateField(dbObj,"verbetes","texto1","Integer")
  151.   mCreateField(dbObj,"verbetes","texto2","Integer")
  152.   mCreateField(dbObj,"verbetes","texto3","Integer")
  153.   mCreateField(dbObj,"verbetes","texto4","Integer")
  154.   mCreateField(dbObj,"verbetes","texto5","Integer")
  155.   mCreateField(dbObj,"verbetes","texto6","Integer")
  156.   mCreateField(dbObj,"verbetes","texto7","Integer")
  157.   mCreateField(dbObj,"verbetes","texto8","Integer")
  158.   mCreateField(dbObj,"verbetes","texto9","Integer")
  159.   mCreateField(dbObj,"verbetes","texto10","Integer")
  160.   mCreateField(dbObj,"verbetes","texto11","Integer")
  161.   mCreateField(dbObj,"verbetes","texto12","Integer")
  162.   mCreateField(dbObj,"verbetes","texto13","Integer")
  163.   mCreateField(dbObj,"verbetes","texto14","Integer")
  164.   mCreateField(dbObj,"verbetes","texto15","Integer")
  165.   mCreateField(dbObj,"verbetes","texto16","Integer")
  166.   mCreateField(dbObj,"verbetes","texto17","Integer")
  167.   mCreateIndex(dbObj,"verbetes","index","duplicate","arqNum","ascending")
  168.   
  169.   mCreateTable(dbObj,"links" )
  170.   mCreateField(dbObj,"links","arqNum","Integer")
  171.   mCreateField(dbObj,"links","mediaNum", "Integer")
  172.   mCreateField(dbObj,"links","subtitNum", "Integer")
  173.   mCreateField(dbObj,"links","palNum","Integer")
  174.   mCreateField(dbObj,"links","destArq","Integer")
  175.   mCreateField(dbObj,"links","destMedia", "Integer")
  176.   mCreateIndex(dbObj,"links","linksNdx","duplicate","arqNum","ascending")
  177.   
  178.   -- Grava modificacoes e fecha
  179.   mBuild(dbObj)
  180.   set dbObj = 0
  181.   set ClassDbe = 0
  182. end
  183.  
  184.  
  185. on abreArqs
  186.   global garqTextos, garqLista, garqControle
  187.   set garqLista = new(xtra "fileio")
  188.   openFile(garqLista, the moviePath & "Convertidos/lista.txt", 1)
  189.   set garqTextos = new(xtra "fileio")
  190.   openFile(garqTextos, the moviePath & "Convertidos/sacolao.txt", 1)
  191.   set garqControle = new(xtra "fileio")
  192.   openFile(garqControle, the moviePath & "Convertidos/controle.txt", 1)
  193. end
  194.  
  195. on fechaArqs
  196.   global garqTextos, garqLista, garqControle
  197.   closeFile(garqLista)
  198.   set garqLista = 0  
  199.   closeFile(garqTextos)
  200.   set garqTextos = 0  
  201.   closeFile(garqControle)
  202.   set garqControle = 0  
  203. end
  204.  
  205. on leMedia indice, memTexto
  206.   global gSimples
  207.   
  208.   if indice = 0 then 
  209.     set the text of member memTexto to "x"
  210.     return 1
  211.   end if
  212.   
  213.   mSetCriteria(gSimples,"arqNum","=",indice)
  214.   mSelect(gSimples)
  215.   
  216.   if the platform contains "Mac" then
  217.     set estilos = mGetField(gSimples, "estilos")
  218.     if estilos = "x" then
  219.       mGetMedia(gSimples,"textoPC", member memTexto)
  220.     else
  221.       set the text of member memTexto to mGetField(gSimples,"stringMac")
  222.       set the font of member memTexto to ¼
  223.           (the font of member "TipoLetra")
  224.       set the fontStyle of member memTexto to¼
  225.           (the fontStyle of member "TipoLetra")
  226.       fazEstilos(estilos,memTexto)
  227.     end if
  228.   else
  229.     mGetMedia(gSimples,"textoPC", member memTexto)
  230.   end if
  231.   
  232.   return 0
  233. end
  234.  
  235. on importaLinks
  236.   Set ClassDbe = Xtra "V12Dbe"
  237.   set dbObj = new(ClassDbe,the moviePath & "textos.v12","ReadWrite","no")
  238.   if NOT objectP(dbObj) then
  239.     Alert("Cannot open database: textos.v12")
  240.     exit
  241.   end if
  242.   set ClassTable = Xtra "V12Table"
  243.   set tbl = new(ClassTable,mGetRef(dbObj),"links")
  244.   set f = new( xtra "fileio")
  245.   openFile(f,the moviePath & "Convertidos/links.txt", 1)
  246.   set fLen = getLength(f)
  247.   
  248.   set counter = 0
  249.   repeat while getPosition(f) < fLen-2
  250.     set arq to leAteFimDeLinha(f)
  251.     set media to leAteFimDeLinha(f)
  252.     set subtit to leAteFimDeLinha(f)
  253.     set pal to leAteFimDeLinha(f)
  254.     set destArq to leAteFimDeLinha(f)
  255.     set destMedia to leAteFimDeLinha(f)
  256.     mAddRecord(tbl)
  257.     mSetField(tbl,"arqNum", arq)
  258.     mSetField(tbl,"mediaNum", media)
  259.     mSetField(tbl,"subtitNum", subtit)
  260.     mSetField(tbl,"palNum", pal)
  261.     mSetField(tbl,"destArq", destArq)
  262.     mSetField(tbl,"destMedia",destMedia)
  263.     mUpdateRecord(tbl)
  264.     set counter = counter + 1
  265.     if counter mod 1000 = 0 then put counter & " registros"
  266.   end repeat
  267.   put "Links lidos: " & counter
  268.   
  269.   mGoFirst(tbl)
  270.   mSelect(tbl)
  271.   put "Links total: " & mSelectCount(tbl)
  272.   
  273.   closeFile(f)
  274.   set f = 0
  275.   set tbl = 0
  276.   set dbObj = 0
  277.   set ClassDbe = 0
  278. end
  279.  
  280. --on preparaField membro, corFrente, corFundo
  281. --  set the text of member membro to "x"
  282. --  set the font of member membro to "Arial"
  283. --  set the fontSize of member membro to 10
  284. --  set the fontStyle of member membro to ""
  285. --  set the foreColor of member membro to corFrente
  286. --  set the backColor of member membro to corFundo
  287. --  set the lineHeight of member membro to 16
  288. --end
  289.  
  290. --on ajuda x
  291. --  repeat with i = 0 to 19
  292. --    set the lineHeight of member (x+i) to 16
  293. --  end repeat
  294. --end
  295.  
  296. on importaSimples arqNum
  297.   global garqTextos, garqLista, garqControle
  298.   global gImportaSimples
  299.   set gImportaSimples = true
  300.   
  301.   if arqNum >= 10000 then return arqNum
  302.   put Integer(LeAteFimDeLinha(garqLista)) into mediaNum
  303.   put LeAteFimDeLinha(garqLista) into fotoCode
  304.   if arqNum = 5001 then
  305.     set mem = the number of member "TextoLicenciadores"
  306.     set memMac = 0
  307.     set cst = "Verbetes"
  308.   else if arqNum < 500 then
  309.     set mem = the number of member "TextoUniversos" 
  310.     set mem = mem + arqNum - 1
  311.     set memMac = 0
  312.     set cst = "Universos"
  313.   else if arqNum < 1000 then
  314.     set mem = the number of member "TextosEspeciais"
  315.     set mem = mem + arqNum - 500
  316.     set memMac = 0
  317.     set cst = "Abertura"
  318.   else if arqNum < 2000 then
  319.     set mem = the number of member "TextoCriadores"
  320.     set memMac = mem
  321.     set cst = "Criadores"
  322.   else if arqNum < 2016 then
  323.     set mem = the number of member "TextoMomentos" 
  324.     set mem = mem + arqNum - 2000
  325.     set memMac = 0
  326.     set cst = "Melhor"
  327.   else
  328.     alert("Que pagina Ä essa ?" + arqNum)
  329.   end if
  330.   
  331.   -- Prepara novo registro
  332.   set res = mAddRecord(gSimples)
  333.   if (res < 0) then put "Erro: " & res
  334.   set res = mSetField(gSimples, "arqNum", arqNum)
  335.   if (res < 0) then put "Erro: " & res
  336.   --  set res = mSetField(gVerbetes, "fotoCode", fotoCode)
  337.   --  if (res < 0) then put "Erro: " & res
  338.   
  339.   -- Carrega texto
  340.   put Integer(LeAteFimDeLinha(garqLista)) into linhasTexto
  341.   put Integer(LeAteFimDeLinha(garqLista)) into linhasControle
  342.   if (linhasTexto <= 0) then put "Erro: texto vazio: " & arqNum
  343.   
  344.   set texto = leTexto(garqTextos,linhasTexto)    
  345.   
  346.   set the text of member mem to texto
  347.   set estilos = leEstilos(garqControle, linhasControle)
  348.   fazEstilos(estilos, mem)
  349.   set res = mSetMedia(gSimples, "textoPC", member mem)
  350.   if (res < 0) then put "Erro ImportaSimples mSetMedia: " &¼
  351.                         res & ", arqNum=" & arqNum 
  352.   
  353.   -- Prepara novo registro
  354.   set res = mUpdateRecord(gSimples)
  355.   if (res < 0) then put "Erro ImportaSimples mSetMedia: " & res & ", arqNum=" & arqNum
  356.   
  357.   set gImportaSimples = false
  358. end
  359.  
  360.  
  361.  
  362. on importaVerbete arqNum 
  363.   global garqTextos, garqLista, garqControle
  364.   global gSimples, gSimplesIndice
  365.     
  366.   if arqNum < 10000 then return arqNum
  367.   put Integer(LeAteFimDeLinha(garqLista)) into mediaNum
  368.   put LeAteFimDeLinha(garqLista) into fotoCode
  369.   if mediaNum <> 1 then
  370.     set mem = the number of member "TextosMidias"
  371.   else
  372.     set mem = the number of member "TextosVerbetes"
  373.   end if
  374.   
  375.   -- Prepara novo registro
  376.   set res = mAddRecord(gVerbetes)
  377.   if (res < 0) then Alert( "Erro ( mAddRecord ): " & res )
  378.   set res = mSetField(gVerbetes, "arqNum", arqNum)
  379.   if (res < 0) then Alert( "Erro ( mSetField ): " & res )
  380.   set res = mSetField(gVerbetes, "mediaNum", mediaNum)
  381.   if (res < 0) then Alert( "Erro ( mSetField ): " & res )
  382.   set res = mSetField(gVerbetes, "fotoCode", fotoCode)
  383.   if (res < 0) then Alert( "Erro ( mSetField ): " & res )
  384.   
  385.   -- Reinicializa todos subtitulos
  386.   set x = "x"
  387.   repeat with subtitNum = 0 to 17
  388.     set the text of member (mem + subtitNum) to x
  389.     mSetField(gVerbetes, "texto" & subtitNum, 0)
  390.     set the fontStyle of member (mem + subtitNum) to "" 
  391.   end repeat
  392.   
  393.   -- Carrega e salva os textos de cada subtitulo
  394.   put Integer(LeAteFimDeLinha(garqLista)) into subtitNum
  395.   repeat while subtitNum >= 0
  396.     -- Le texto
  397.     put Integer(LeAteFimDeLinha(garqLista)) into linhasTexto
  398.     put Integer(LeAteFimDeLinha(garqLista)) into linhasControle
  399.     if (linhasTexto > 0) then
  400.       set texto = leTexto(garqTextos,linhasTexto)    
  401.       if the number of words in texto > 0 then
  402.         mSetField(gVerbetes, "texto" & subtitNum, gSimplesIndice)
  403.         mAddRecord(gSimples)
  404.         mSetField(gSimples, "arqNum", gSimplesIndice)
  405.         set gSimplesIndice = gSimplesIndice + 1
  406.         
  407.         if the number of chars in texto < 255 then set mac = true
  408.         else set mac = false
  409.         
  410.         set the text of member (mem + subtitNum) to texto
  411.         set estilos = leEstilos(garqControle, linhasControle)
  412.         fazEstilos(estilos, (mem+subtitNum))
  413.         mSetMedia(gSimples, "textoPC", member (mem + subtitNum))
  414.         
  415.         if mac then 
  416.           mSetField(gSimples, "estilos", estilos)
  417.           mSetField(gSimples, "stringMac", texto)
  418.         else 
  419.           mSetField(gSimples, "stringMac", "")
  420.           mSetField(gSimples, "estilos", "x")
  421.         end if
  422.         
  423.         set res = mUpdateRecord(gSimples)
  424.         if (res < 0) then Alert "Erro Midias (mUpdateRecord): " & res
  425.         
  426.         
  427.         
  428.         -- Nos dois "else" abaixo, o texto e' vazio!
  429.       else 
  430.         mSetField(gVerbetes, "texto" & subtitNum, 0)
  431.         set the text of member  (mem + subtitNum) to "x"
  432.       end if      
  433.     else
  434.       mSetField(gVerbetes, "texto" & subtitNum, 0)
  435.       set the text of member (mem + subtitNum) to "x"
  436.     end if   
  437.     
  438.     put Integer(LeAteFimDeLinha(garqLista)) into subtitNum
  439.   end repeat
  440.   
  441.   -- Salva registro
  442.   set res = mUpdateRecord(gVerbetes)
  443.   if (res < 0) then Alert "Erro Verbetes (mUpdateRecord): " & res
  444.   
  445.   return 0
  446. end
  447.